﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace GiaiPhuongTrinhBac2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            lbx1.Visible = false;
            lbx2.Visible = false;
        }

        private void btngiai_Click(object sender, EventArgs e)
        {
            if (this.txta.Text.Length != 0 && this.txtb.Text.Length != 0 && this.txtc.Text.Length != 0)
            {
                List<double> kq = new List<double>();
                kq = GiaiPT2(System.Double.Parse(this.txta.Text.ToString()), System.Double.Parse(this.txtb.Text.ToString()), System.Double.Parse(this.txtc.Text.ToString()));
                switch (kq.Count)
                { 
                    case 0:
                        lbketluan.Text = "Phương trình vô nghiệm";
                         lbx1.Visible = false;
                         lbx2.Visible = false;
                        
                        break;
                    case 1:
                        lbketluan.Text = "Phương trình có nghiệm kép";
                         lbx1.Visible = true;
                         lbx2.Visible = false;
                        
                        lbx1.Text ="Kết quả x= "+ kq[0].ToString();                      
                        break;
                    case 2:
                        lbketluan.Text = "Phương trình 2 nghiệm phân biệt";
                         lbx1.Visible = true;
                         lbx2.Visible = true;
                         
                        lbx1.Text ="Kết quả x1= " +kq[0].ToString();
                        lbx2.Text ="Kết quả x2= "+ kq[1].ToString();
                        break;
                }
            }
        }

        List<double> GiaiPT2(double a, double b, double c)
        {
			List<double> Result = new List<double>();
			double Delta = b * b - 4 * a * c;
            if (Delta == 0)
            {
                double x = -1 * b / 2 * a;
                Result.Add(x);
            }
            else if (Delta > 0)
            {
                double x1 = ( b + Math.Sqrt(Delta)) / 2 * a;
                double x2 = ( b - Math.Sqrt(Delta)) / 2 * a;
                Result.Add(x1);
                Result.Add(x2);
            }
			return Result;
        }
    }
}
